$(window).load(function() {

	//设置表单样式
	setFormCSS();
});

$(function() {
	//为id为query的按钮添加单击事件，让id为dg的DataGrid从服务器重新加载数据，常用于查询
	$("#querybtn").click(function() {
		$("#provinceGrid").datagrid('load', {
			//此处填写提交给服务器的参数，为JSON数据格式，可以添加多个参数
			"name": $("#province").val()
		});

	});
	$("#querycity").click(function() {
		$("#cityGrid").datagrid('load', {
			//此处填写提交给服务器的参数，为JSON数据格式，可以添加多个参数
			"cityName": $("#city").val(),
			"provinceId":$("#provinceId").val()
		});
		
	});
	$("#addcity").click(function() {
		$("#cityGrid").datagrid('appendRow', {//appendRow是在最后一行添加数据
			row: {
			id: 0,
			name: '',
			}
			});
		var len=$("#cityGrid").datagrid('getRows').length;
		$("#cityGrid").datagrid('beginEdit', len-1);//开启编辑并传入要编辑的行
		$("#editbtn"+(len-1)).linkbutton({text:'',plain:false,iconCls:'icon-ok'});
		$("#editbtn"+(len-1)).tooltip({    
			position: 'bottom',
			trackMouse:'true',
			content: '<span>确定添加</span>'    
		});
		$("#editbtn"+(len-1)).attr("status",3);
		$(".delcls").linkbutton({text:'',plain:false,iconCls:'icon-cancel'});
		$(".delcls").tooltip({    
			position: 'bottom',
			trackMouse:'true',
			content: '<span>删除</span>'    
		});
	});
	
	$("#addbtn").click(function() {
		$("#dlgname").textbox('clear');
		$("#provinceId").val(0);
		$("#cityList").hide(0);
		$('#dlg').dialog({
			title: '添加省',
			height:110,
			top:($("#centerframe",window.parent.document).innerHeight()-100)/2,
			iconCls: 'icon-add',
			onResize:function(width,height){
				$("#dlgname").textbox({
					width:width-80
				});
			},
			buttons:[{
				text:'确定',
				iconCls: 'icon-ok',
				handler:function(){
						submitForm(PROJECT_NAME + '/province_saveorupdate.do',"添加成功","add");
				}
			},{
				text:'关闭',
				iconCls: 'icon-cancel',
				handler:function(){
					$('#dlg').dialog('close');
				}
			}]
		});
		$('#dlg').dialog('open');
		
	});
	

	initDataGrid(
		"#provinceGrid",
		PROJECT_NAME + '/province_query.do', {},
		'#toolbar',
		'id', [
			[{
					field: 'id',
					title: 'ID',
					hidden: true
				},{
					field: 'name',
					title: "名称",
					align: 'center',
					width: 10
				}, {
					field: 'opt',
					title: "操  作",
					align: 'center',
					width: 10,
					//设置按钮列
					formatter: function(value, row, index) {
						var e = '<a  class="editcls" onclick="editProvince(' + index + ')"></a> ';
						var d = '<a  class="delcls" onclick="delProvince(' + row.id + ')"></a>';
						return e+d;
					}
				}
			]
		],
		function(data) {
			//设置按钮列easyUI样式
			setCell("修改","","删除","");
		}
	);
});



function editProvince(index) {
	$(".editcls").tooltip('destroy');
	$('#provinceGrid').datagrid('selectRow', index);
	var row = $('#provinceGrid').datagrid('getSelected');
	$('#fm').form('load', row);
	$("#cityGrid")
	.datagrid(
			{
				loadMsg : '数据加载中请稍后 ...',
				url : PROJECT_NAME + '/city_query.do',
				queryParams:{
					"provinceId":$("#provinceId").val()
				},
				title:"",
				fitColumns : true,
				autoRowHeight : true,
				pagination : true,
				rownumbers : true,
				pageSize : 10,
				width : '100%',
				style:{
					margin:'0 auto'
				},
				pageList : [ 10, 20, 40, 80, 120 ],
				border : true,
				nowrap : true,
				striped : true,
				collapsible : true,
				singleSelect : true,
				ctrlSelect:true,
				idField : 'id',
				columns : [
							[{
								field: 'id',
								title: 'ID',
								hidden: true
							},{
								field: 'name',
								title: "名称",
								align: 'center',
								width: 10,
								editor:{
									type:'textbox',
									options:{
										prompt:"请输入城市名称"
										}
								}
							}, {
								field: 'opt',
								title: "操  作",
								align: 'center',
								width: 10,
								//设置按钮列
								formatter: function(value, row, index) {
									var e = '<a  class="editcls" onclick="editCity(' + index + ')" id="editbtn'+index+'" status=2></a> ';
									var d = '<a  class="delcls" onclick="delCity(' + index + ')" ></a>';
									return e+d;
								}
							}
						]
					],
				onLoadSuccess:function(data) {
					
					//设置按钮列easyUI样式
					setCell("修改","","删除","");
				},
				onAfterEdit: function (rowIndex, rowData, changes) {//在添加完毕endEdit，保存时触发
						if (rowData.name.length==0) {
							var status=1;
							$.messager.alert("提示","请填写城市名称！","warning");
							var tip;
							if (rowData.id) {
								tip="保存修改";
								status=1;
							} else {
								status=3;
								tip="确定添加";
							}
							$("#cityGrid").datagrid('beginEdit', rowIndex);
							renderButton(rowIndex,"icon-ok",tip);
							$("#editbtn"+rowIndex).attr("status",status);
							return;
						}
						
						$.messager.progress({
							text: '请稍候...',
							interval: 500
						});
						if (rowData.id) {
							$.ajax({
								url: PROJECT_NAME + '/city_update.do',
								type: 'POST',
								data:{
									"id":rowData.id,
									"name":rowData.name,
									"province.id":$("#provinceId").val()
								},
								dataType: "json",
								success: function(data, status) {
									$.messager.progress('close');
									if(data=="ok"){
										renderButton(rowIndex,"icon-edit","修改");
										showMsgBox("修改成功");
										$("#editbtn"+rowIndex).attr("status",2);
									}else{
										$.messager.alert('错误', '对不起，修改失败！请与管理员联系。', 'error');
										renderButton(rowIndex,"icon-ok","保存修改");
									}
								},
								err: function(XMLHttpRequest, textStatus, err) {
									$.messager.progress('close');
									$.messager.alert('错误', '对不起，服务器忙！', 'error');
									renderButton(rowIndex,"icon-ok","保存修改");
								}
							});
						}else{
							$.ajax({
								url: PROJECT_NAME + '/city_add.do',
								type: 'POST',
								data:{
									"name":rowData.name,
									"province.id":$("#provinceId").val()
								},
								dataType: "json",
								success: function(data, status) {
									$.messager.progress('close');
									if(data=="err"){
										$.messager.alert('错误', '对不起，修改失败！请与管理员联系。', 'error');
										renderButton(rowIndex,"icon-ok","确定添加");
									}else{
										showMsgBox("添加成功");
										$("#cityGrid").datagrid('updateRow',{
											index: rowIndex,
											row: {
												id:data,
												name: rowData.name,
											}
										});
										renderButton(rowIndex,"icon-edit","修改");
										$("#editbtn"+rowIndex).attr("status",2);
									}
								},
								err: function(XMLHttpRequest, textStatus, err) {
									$.messager.progress('close');
									$.messager.alert('错误', '对不起，服务器忙！', 'error');
									renderButton(rowIndex,"icon-ok","确定添加");
								}
							});
						}
				}
			}).datagrid('getPager').pagination({
				pageNumber : 1,
				beforePageText : '第',
				afterPageText : '页    共 {pages} 页',
				displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录'
			});
	$("#cityList").show(0);
	$('#dlg').dialog({
		title: '修改省',
		height:$("#centerframe",window.parent.document).innerHeight(),
		top:0,
		openAnimation:"fade",
		closeAnimation:"fade",
		onResize:function(width,height){
			$("#city").textbox({
				width:width-210
			});
			$("#dlgname").textbox({
				width:width-80
			});
			$("#cityGrid").datagrid('resize',{
				height:height-155
			});
		},
		onClose:function(){
			setCell("修改", "保存", "删除", "查看");
		},
		iconCls: 'icon-edit',
		buttons:[{
			text:'确定',
			iconCls: 'icon-ok',
			handler:function(){
					submitForm(PROJECT_NAME + '/province_saveorupdate.do',"修改成功","update");
			}
		},{
			text:'关闭',
			iconCls: 'icon-cancel',
			handler:function(){
				$('#dlg').dialog('close');
			}
		}]
	});
	
	$('#dlg').dialog('open');
	
}

function renderButton(rowIndex,icon,tip){
	$("#editbtn"+rowIndex).linkbutton({text:'',plain:false,iconCls:icon});
	$("#editbtn"+rowIndex).tooltip({    
		position: 'bottom',
		trackMouse:'true',
		content: '<span>'+tip+'</span>'    
	});
	$(".delcls").linkbutton({text:'',plain:false,iconCls:'icon-cancel'});
	$(".delcls").tooltip({    
		position: 'bottom',
		trackMouse:'true',
		content: '<span>删除</span>'    
	});
}

function submitForm(url,msg,action){
	$('#fm').form('submit', {    
	    url:url,
	    queryParams:{"action":action},
	    onSubmit:function(para){
	    	var valid=$('#fm').form("validate");
	    	if (valid) {
	    		$.messager.progress({
	    			text: '请稍候...',
	    			interval: 500
	    		});
			}
	    	 return valid;
	    },
	    success:function(data){
	    	$.messager.progress('close');
	        if(data=="1"){
	        	$('#dlg').dialog('close');
	        	showMsgBox(msg);
	        	$("#provinceGrid").datagrid('reload');
	        }else{
	        	$.messager.alert("错误", "操作失败！请与系统管理员联系!", 'error');
	        }
	    }    
	});
}

function editCity(index){
	
	//status:1正在修改2结束修改（添加）3正在添加
	if ($("#editbtn"+index).attr("status")==2) {
		$("#editbtn"+index).attr("status",1);
		$("#editbtn"+index).linkbutton({text:'',plain:false,iconCls:'icon-ok'});
		$("#editbtn"+index).tooltip('update','保存修改');
		$("#cityGrid").datagrid('beginEdit', index);//开启编辑并传入要编辑的行
	}else {
			$("#editbtn"+index).tooltip('destroy');
			$(".delcls").tooltip('destroy');
			$("#cityGrid").datagrid('endEdit', index);//结束编辑，传入编辑的行
	}
}
function delCity(index){
	
	$('#cityGrid').datagrid('selectRow', index);
	var row = $('#cityGrid').datagrid('getSelected');
	if ($("#editbtn"+index).attr("status")==3) {
		$(".delcls").tooltip('destroy');
		$('#cityGrid').datagrid('reload');
	}else{
		$.messager.confirm('确认删除','您确认删除该城市吗？',function(r){    
		    if (r){
		    	$.ajax({
					url: PROJECT_NAME + '/city_del.do',
					type: 'POST',
					data:{
						"id":row.id,
						"name":row.name,
						"province.id":$("#provinceId").val()
						},
					dataType: "json",
					beforeSend:function(xhr){
						$('#cityGrid').datagrid('loading');
					},
					success: function(data, status) {
						if(data=="ok"){
							showMsgBox("删除成功");
							$('#cityGrid').datagrid('reload');
						}else{
							$('#cityGrid').datagrid('loaded');
							$.messager.alert('错误', '对不起，删除失败！请与管理员联系。', 'error');
						}
					},
					err: function(XMLHttpRequest, textStatus, err) {
						$.messager.alert('错误', '对不起，服务器忙！', 'error');
						$('#cityGrid').datagrid('loaded');
					}
				});
		    }    
		}); 
	}
	
}

function delProvince(id){
	$.messager.confirm('确认删除','您确认删除该省吗？',function(r){    
	    if (r){
	    	$.messager.confirm('确认删除','该省下的所有城市将被一并删除，继续吗？',function(r){    
	    	    if (r){
	    	    	$.ajax({
						url: PROJECT_NAME + '/province_del.do',
						type: 'POST',
						data:{
							"id":id
							},
						dataType: "json",
						beforeSend:function(xhr){
							$('#provinceGrid').datagrid('loading');
						},
						success: function(data, status) {
							if(data=="ok"){
								$('#provinceGrid').datagrid('reload');
								showMsgBox("删除成功");
							}else{
								$.messager.alert('错误', '对不起，删除失败！请与管理员联系。', 'error');
							}
						},
						err: function(XMLHttpRequest, textStatus, err) {
							$.messager.alert('错误', '对不起，服务器忙！', 'error');
							$('#provinceGrid').datagrid('loaded');
						}
					});
	    	    }    
	    	}); 
	    }    
	}); 
}

